home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AmigActive 24
/
AACD 24.iso
/
AACD
/
Utilities
/
ttf2pt1PPC
/
src
/
windows.h
< prev
Wrap
C/C++ Source or Header
|
2001-06-13
|
2KB
|
103 lines
/*
* Implementation of things missing in Windows
*/
#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif
#undef ntohs
#undef ntohl
#undef htonl
#ifdef WINDOWS_FUNCTIONS
/* byte order */
#ifndef AMIGA
static unsigned short StoM(unsigned short inv) {
union iconv {
unsigned short ui;
unsigned char uc[2];
} *inp, outv;
inp = (union iconv *)&inv;
outv.uc[0] = inp->uc[1];
outv.uc[1] = inp->uc[0];
return (outv.ui);
}
static unsigned int ItoM(unsigned int inv) {
union iconv {
unsigned int ui;
unsigned char uc[4];
} *inp, outv;
inp = (union iconv *)&inv;
outv.uc[0] = inp->uc[3];
outv.uc[1] = inp->uc[2];
outv.uc[2] = inp->uc[1];
outv.uc[3] = inp->uc[0];
return (outv.ui);
}
unsigned short ntohs(unsigned short inv) { return StoM(inv); }
unsigned long ntohl(unsigned long inv) { return ItoM(inv); }
unsigned long htonl(unsigned long inv) { return ItoM(inv); }
#endif
char *optarg;
int optind=1;
char getopt(int argc, char **argv, char *args) {
int n,nlen=strlen(args),nLen=0;
char nCmd;
if (argv[optind] && *argv[optind]=='-') {
nCmd=*((argv[optind]+1));
for (n=0;n<nlen;n++) {
if (args[n] == ':') continue;
if (args[n] == nCmd) {
if (args[n+1]==':') {
char retVal;
retVal=*(argv[optind]+1);
optarg=argv[optind+1];
if (!optarg) optarg="";
optind+=2;
return retVal;
} else {
char retVal;
retVal=*(argv[optind]+1);
optarg=NULL;
optind+=1;
return retVal;
}
}
}
}
return -1;
}
#else
unsigned short ntohs(unsigned short inv);
unsigned long ntohl(unsigned long inv);
unsigned long htonl(unsigned long inv);
extern char *optarg;
extern int optind;
char getopt(int argc, char **argv, char *args);
#endif
#ifdef AMIGA
/* We're big endian */
#define ntohl(x) (x)
#define ntohs(x) (x)
#endif